#include "RivalWindow.h"
#include "ui_RivalWindow.h"

/**
 * 构造方法。
 * @param parent    父窗口
 */
RivalWindow::RivalWindow(QWidget* parent) :
    QDialog(parent),
    ui(new Ui::RivalWindow) {
    ui->setupUi(this);
}

/**
 * 析构方法。
 */
RivalWindow::~RivalWindow() {
    delete ui;
}

/**
 * "取消"按钮的单击响应方法。
 */
void RivalWindow::on_buttonCancel_clicked() {
    // 关闭窗口
    QDialog::reject();
}

/**
 * "确定"按钮的单击响应方法。
 */
void RivalWindow::on_buttonOK_clicked() {
    // 获取用户选择的名字
    QList<QListWidgetItem*> selectedItems = ui->listViewUsers->selectedItems();
    if (selectedItems.count() > 0) {
        QString selectedName = selectedItems.at(0)->text();    // 选择的用户名
        emit UM_GET_RIVAL_NAME(selectedName.toStdString().c_str());
    }

    // 关闭窗口
    QDialog::accept();
}

/**
 * 设置用户名列表。
 * @param usernameList 用户名列表
 */
void RivalWindow::setUsernameList(char(*usernameList)[GomokuProtocol::USERNAME_BUF_LEN]) {
    // 删除所有用户名
    ui->listViewUsers->clear();

    // 添加用户名字到列表控件中
    for (int i = 0; i < GomokuProtocol::MAX_USER_COUNT; i++) {
        if (usernameList[i][0] == '\0') {
            break;
        }
        ui->listViewUsers->addItem(usernameList[i]);
    }
}
